;
(function($) {
    /**
     * 播放类
     * @param frames {Element} //播放帧
     * @param options {Object} //播放配置
     * @return tape
     */
    function tape(frames, options) {
        if($.isPlainObject(frames)){
            options = frames;
            frames = null;
        }
    }
    tape.baseClass = {
        //默认配置
        _options: {
            style: 'think-tape',
            type: 'visibility', //播放方式
            currentFrame: 0, //初始播放祯索引
            section: null, //组成胶卷的单节元素
            number: 1, //一屏帧数
            pause: 3000, //暂停时间
            loop: false, //是否循环播放
            auto: true, //自动播放
            effect: 'visibility', //播放效果
            onStartPlay: null, //开始播放事件
            onPlay: null, //正在播放事件
            onStopPlay: null, //播放结束事件
            onEndCycle: null, //一个播放周期结束事件
            onCreate: null //控件创建完毕事件
        },
        //记录帧列表
        _frameList: [],
        //记录播放单节列表
        _playSection: [],
        //记录播放队列
        _palyQueue: [],
        //记录是否处于禁止状态
        _isDisabled: null,
        //记录当前播放帧
        _currentFrame: null,
        //记录当前播放屏
        _currentScreen: null,
        //记录暂停时间
        _pauseTime: null,
        //记录是否自动播放
        _isAuto: null,
        //记录是否循环播放
        _isLoop: null,
        //记录一屏播放数量
        _screenNumber: null,
        //初始化
        initial : function(){

        },
        /**
         * 播放到指定帧
         * @param index {Element|Number} //存在播放队列中的单个帧
         * @return tape
         */
        targetFrame: function(index) {

        },
        /**
         * 播放到上一帧
         * @return tape
         */
        prevFrame: function(index) {

        },
        /**
         * 播放到下一帧
         * @return tape
         */
        prevFrame: function(index) {

        },
        /**
         * 将帧分屏
         * @return tape
         */
        _frameToScreen: function() {

        },
        /**
         * 播放到指定屏
         * @param index {Element|Number} //存在播放队列中的单个分屏
         * @return tape
         */
        targetScreen: function(index) {

        },
        /**
         * 播放到上一屏
         * @param index {Element|Number} //存在播放队列中的单个分屏
         * @return tape
         */
        targetScreen: function(index) {

        },
        /**
         * 播放到指下一屏
         * @param index {Element|Number} //存在播放队列中的单个分屏
         * @return tape
         */
        targetScreen: function(index) {

        },
        /**
         * 设置或返回一屏播放数量
         * @param number {Number} //数量
         * @return tape
         */
        screenNumber: function(number) {

        },
        /**
         * 设置或获取暂停时间
         * @param time {Number} //暂停的时间（毫秒）
         * @return tape
         */
        pauseTime: function(time) {

        },
        /**
         * 设置自动播放
         * @return tape
         */
        autoPlay: function() {

        },
        /**
         * 停止自动播放
         * @return tape
         */
        stopPlay: function() {

        },
        /**
         * 设置或返回是否循环播放
         * @return tape
         */
        loopPlay: function(status) {

        },
        /**
         * 更新控件
         * @return tape
         */
        update: function(index) {

        },
        /**
         * 销毁控件
         * @return tape
         */
        destroy: function(index) {

        }
    }
    //记录已扩展列表
    tape.extendList = {};
    /**
     * 扩展对象
     * @param name {String} //名称
     * @param object {Object} //扩展类
     * @return Function
     */
    tape.extend = function(name, object) {
        if (typeof name == 'string') {
            var _F = function() {
                if (!(this instanceof _F)) {
                    return new _F(name, object);
                }
                _F._parent = tape.baseClass;
                if ($.isFunction(_F._parent.initial)) {
                    _F._parent.initial.apply(this, arguments);
                }
                if ($.isFunction(this.initial)) {
                    this.initial.apply(this, arguments);
                }
                delete this.initial;
            }
            for (var i in tape.baseClass) {
                _F.prototype[i] = tape.baseClass[i];
            }
            if ($.isPlainObject(object)) {
                for (var i in object) {
                    _F.prototype[i] = object[i];
                }
            }
            return _F;
        }
    }
    /**
     * 可见性扩展
     * @return Function
     */
    tape.extend('visibility', {
        initial : function(){

        }
    });
    /**
     * 淡入淡出扩展
     * @return Function
     */
    tape.extend('fade', {
        initial : function(){

        }
    });
    /**
     * 滚动扩展
     * @return Function
     */
    tape.extend('scroll', {
        initial : function(){

        }
    });
    $.tape = function(element, options) {
        return new tape(element, options);
    }
    //扩展播放效果
    $.tape.extend = function(name, object) {

    }
    $.fn.tape = function(options) {
        return new tape($(this), options);
    }

})(jQuery);
